/*
 * Copyright (c) 2022  by Junzhao
 * THIS FILE IS PART OF JAVASE Song Huongkang PROJECT
 * All Rights Reserved.
 */

package 常用方法;
/**
 * @description 测试常用方法
 *
 * currentThread()返回当前执行的线程对象的引用
 * yield()释放执行权
 * join()
 * sleep()让指定线程阻塞
 * isAlive()判断线程是否还存活
 *
 *
 * @author 俊昭
 * @date 2022/4/12
*/
public class ThreadMethodsTest {
    public static void main(String[] args) {
        MyThread myThread =new MyThread("线程测试");
//        System.out.println(myThread.getName());
//        myThread.setName("线程测试");
        System.out.println(myThread.getName());
        myThread.start();
        Thread.currentThread().setName("主线程");
//        myThread.stop();已过时
        for (int i = 0 ;i<100;i++){
            if (i % 2 == 1){
                System.out.println(Thread.currentThread().getName()+":"+i);
            }
//            if (i ==20){
//                try {
//                    myThread.join();// 主线程执行到 i=20 分线程进行主线程停止 myThread进行
//                } catch (InterruptedException e) {
//                    e.printStackTrace();
//                }
//            }
        }


    }
}
class MyThread extends Thread{
    public MyThread(String name) {
        super(name);
    }

    @Override
    public void run() {
        for (int i = 0 ;i<100;i++){
            if (i % 2 == 1){

                try {
                    Thread.sleep(1000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                System.out.println(Thread.currentThread().getName()+":"+i);
            }
//            if (i % 20 == 0){
//                yield();
//                /*
//                 线程测试:39
//                主线程:45
//                主线程:47
//                主线程:49
//                主线程:51
//                主线程:53
//                主线程:55
//                主线程:57
//                主线程:59
//                主线程:61
//                主线程:63
//                主线程:65
//                主线程:67
//                主线程:69
//                主线程:71
//                线程测试:41
//                */
            }
        }
    }